Eduarn – Online & Offline Training with Free LMS for Python, AI, Cloud & More

Tuesday, March 31, 2026

Terraform Module with count INSIDE Module (Azure RG) By EduArn

Save below code int setup.sh file:

 vi setup.sh 

#!/bin/bash

# Create directory structure
mkdir -p tfmodule-count-inside/modules/rg
cd tfmodule-count-inside || exit

echo "📁 Creating Terraform files..."

# -------------------------
# provider.tf
# -------------------------
cat <<EOF > provider.tf
provider "azurerm" {
features {}
}
EOF

# -------------------------
# main.tf (NO count here)
# -------------------------
cat <<EOF > main.tf

module "rg" {
source = "./modules/rg"

rg_names = ["rg-dev", "rg-test", "rg-prod"]
rg_location = "eastus"
}

output "rg_names_output" {
value = module.rg.rg_names_output
}
EOF

# -------------------------
# modules/rg/rg.tf (COUNT HERE)
# -------------------------
cat <<EOF > modules/rg/rg.tf
resource "azurerm_resource_group" "rg" {
count = length(var.rg_names)

name = var.rg_names[count.index]
location = var.rg_location

tags = {
environment = "Dev"
}
}
EOF

# -------------------------
# modules/rg/variable.tf
# -------------------------
cat <<EOF > modules/rg/variable.tf
variable "rg_names" {
type = list(string)
}

variable "rg_location" {
type = string
}
EOF

# -------------------------
# modules/rg/output.tf
# -------------------------
cat <<EOF > modules/rg/output.tf
output "rg_names_output" {
value = azurerm_resource_group.rg[*].name
}
EOF

echo "✅ Terraform module with count INSIDE module created!"
echo ""
echo "👉 Next steps:"
echo "cd tfmodule-count-inside"
echo "terraform init"
echo "terraform plan"
echo "terraform apply"

▶️ How to Run

chmod +x setup.sh
./setup.sh

🎯 What This Does

  • count is used inside module
  • Root module calls only once
  • Module creates multiple resources internally

📁 Output

rg-dev
rg-test
rg-prod

🧠 Key Concept (Important for Interviews)

🔹 Count in Root Module

  • Creates multiple module instances

🔹 Count in Module (this example)

  • Creates multiple resources inside module

👉 This is a very important distinction


✅ Summary

  • Module called once
  • count handled internally
  • Clean and reusable design
  • Best for encapsulated logic

No comments:

Post a Comment

AI Coding Agents Are Evolving Beyond Code Generation

 Most developers still think AI coding agents are only about writing code faster. That’s not the real shift happening in software engineerin...